//package com.he.hsdyc.common.handle.parent2;
//
//
//import com.google.gson.reflect.TypeToken;
//import com.szdtoo.builder.TextBuilder;
//import com.szdtoo.common.constant.QrConstant;
//import com.szdtoo.handle.AbstractHandler;
//import com.szdtoo.model.Bind;
//import com.szdtoo.model.User;
//import com.szdtoo.service.UserService;
//import com.szdtoo.service.parent.BindService;
//import com.szdtoo.service.parent.ParentLoginService;
//import me.chanjar.weixin.common.error.WxErrorException;
//import me.chanjar.weixin.common.session.WxSessionManager;
//import me.chanjar.weixin.mp.api.WxMpService;
//import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
//import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
//import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken;
//import me.chanjar.weixin.mp.bean.result.WxMpUser;
//import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Qualifier;
//import org.springframework.stereotype.Component;
//
//import java.lang.reflect.Type;
//import java.util.Map;
//
///**
// * 扫描事件
// * @author
// */
//@Component
//@Qualifier("scanHandler_parent2")
//public class ScanHandler2 extends AbstractHandler {
//
//    @Autowired
//    private ParentLoginService parentLoginService;
//
//    @Autowired
//    private BindService bindService;
//
//    @Autowired
//    private UserService userService;
//
//
//
//    @Override
//    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
//                                    Map<String, Object> context, @Qualifier("wxMpService_parent2")WxMpService wxMpService_parent2,
//                                    WxSessionManager sessionManager) throws WxErrorException {
//
//        this.logger.info("扫描家长端用户 OPENID: " + wxMessage.getFromUser());
//        String parent_openId=wxMessage.getFromUser();
//
//        //处理二维码中的参数
//        String eventKey=wxMessage.getEventKey();
//        if(eventKey!=null) {
//
//            Type type = new TypeToken<Map<String, Long>>() {}.getType();
//            Map<String,Long> params= WxMpGsonBuilder.create().fromJson(eventKey,type);
//
//
//            params.put("clientType",1l);
//
//            Long userId=params.get("userId");
//
//            this.logger.info("扫描userId: " +userId);
//
//            Long schoolId=params.get("schoolIdForWechatPay");
//
//            if (schoolId != null) { // 扫描微信支付openId
//                String openId = wxMessage.getFromUser();
//
//                // 获取unionid
//                String accessToken = wxMpService_parent2.getAccessToken();
//
////                WxMpOAuth2AccessToken wxMpOAuth2AccessToken = wxMpService_parent2.oauth2getAccessToken(code);
//
//                WxMpOAuth2AccessToken wxMpOAuth2AccessToken = new WxMpOAuth2AccessToken();
//                wxMpOAuth2AccessToken.setAccessToken(accessToken);
//                wxMpOAuth2AccessToken.setAccessToken(openId);
//                WxMpUser wxMpUser = wxMpService_parent2.oauth2getUserInfo(wxMpOAuth2AccessToken, null);
//                String unionId = wxMpUser.getUnionId();
//
//                Integer insRes = userService.updateOpenIdForSchool(schoolId, openId, unionId);
//                if (insRes > 0) {
//                    return new TextBuilder().build("您已扫过获取微信支付openId", wxMessage, wxMpService_parent2);
//                } else {
//                    return new TextBuilder().build("更新微信支付openId失败", wxMessage, wxMpService_parent2);
//                }
//            }
//
//
//            if(userId!=null){  //扫描收款二维码的校长
//                User user=userService.findOneUser(userId);
//                //是否已扫过账号二维码
//                if(user.getAccountOpenId()!=null&&!"".equals(user.getAccountOpenId())){
//                    return new TextBuilder().build("您已扫过转账二维码", wxMessage, wxMpService_parent2);
//                }
//
//                //更新收款openid
//                User newUser=new User();
//                newUser.setId(userId);
//                newUser.setAccountOpenId(wxMessage.getFromUser());
//                userService.updateInfo2(newUser);
//                return new TextBuilder().build("欢迎扫描转账二维码", wxMessage, wxMpService_parent2);
//
//            }
//
//
//
//
//            String result = parentLoginService.doParentLogin(wxMessage.getFromUser(), params);
//            if(QrConstant.ClientType.PARENT.equals(result)) {  //扫描学员二维码
//                Bind bind = bindService.queryMInBindStudent(wxMessage.getFromUser());
//                return new TextBuilder().build("欢迎扫描家长端\n您关注的学生是：" + bind.getStuName(), wxMessage, wxMpService_parent2);
//
//            }else if(QrConstant.ClientType.PARENT_MINI.equals(result)){  //扫描学员二维码，开通了小程序
//                Bind bind = bindService.queryMInBindStudent(wxMessage.getFromUser());
//                return new TextBuilder().build("欢迎扫描家长端\n您关注的学生是：" + bind.getStuName()+"\n小程序功能已开通，点击跳转 \n☞ <a data-miniprogram-appid='wx857af4e7b0451188' data-miniprogram-path='pages/loading/index?openId=" + parent_openId + "' href='http://wechat4.xiaozhangkeji.com' >☆立即使用小程序☆</a>", wxMessage, wxMpService_parent2);
//
//
//            }else if(QrConstant.ClientType.VISITOR.equals(result)){  //扫描游客二维码
//                return new TextBuilder().build("欢迎扫描家长端", wxMessage, wxMpService_parent2);
//
//            }else{
//                return new TextBuilder().build("扫描家长端出错了\n", wxMessage, wxMpService_parent2);
//            }
//        }
//
//
//
//        try {
//            return new TextBuilder().build("感谢扫描家长端\n", wxMessage, wxMpService_parent2);
//        } catch (Exception e) {
//            this.logger.error(e.getMessage(), e);
//        }
//
//        return null;
//    }
//
//
//
//}
